#ifndef IMSI_LOGGING_H
#define IMSI_LOGGING_H

#include "Defines.h"

class Logging : boost::noncopyable
{
    private:
        Logging(const String& aFile);
        void ConditionalOpenHandle();

    private:
        String mFile;
        HANDLE mOutput;

    public:
        static Logging& Logger(const String& aFile = "");
        ~Logging();

        void Write(const String& aText);
};

inline void Log(const String& aText)
{
    Logging::Logger().Write(aText);
}

#endif // IMSI_LOGGING_H
